package com.hetao.jmb2c.handlers;

public class BaseContextHandler {
    /**
     * 使用ThreadLocal存储用户ID
     * 注意：必须使用remove()方法清除，避免内存泄漏
     */
    private static final ThreadLocal<Long> context = new ThreadLocal<>();

    /**
     * 设置当前线程的用户ID
     * @param userId 用户ID
     */
    public static void set(Long userId) {
        context.set(userId);
    }

    /**
     * 获取当前线程的用户ID
     * @return 用户ID，可能为null
     */
    public static Long get() {
        return context.get();
    }

    /**
     * 清除当前线程的用户ID
     * 重要：必须在请求处理完成后调用，特别是在线程池环境中
     */
    public static void remove() {
        context.remove();
    }
}
